Нет, это не обязательно. Соединение закроется естественным образом, когда ваш скрипт завершится.
Вообще говоря, $dbh->disconnect()
требуется только в нескольких очень специфических ситуациях. В большинстве случаев вы можете рассчитывать на закрытие соединения при выходе из скрипта или когда все копии дескриптора вышли из области видимости.