pg_query() は try で捕まえられないのでしょうか?

pg_query($db, 'begin;');
try {
pg_query($db, $sql); // ★エラーが発生
}
catch (Exception $e) {
pg_query($db, 'rollback;');
}
pg_query($db, 'commit;');