Postgresql всъщност не поддържа връщане на множество набори от резултати от една команда. Ако предадете този вход на psql:
BEGIN;
SELECT ...;
END;
той ще раздели това от страна на клиента и всъщност ще изпълни три оператора, само вторият от които връща набор от резултати.
„BEGIN“ и „END“ са команди на ниво SQL за стартиране/завършване на транзакция. (Може да има протокол от по-ниско ниво за извършване на това, но не мога да си спомня). Вероятно не искате да ги издавате директно, а по-скоро вашият драйвер (psycopg2) да се справи с това. Например, с DBI на Perl указвам AutoCommit=>0 при свързване и той имплицитно издава "BEGIN" преди първата ми команда; и след това "END" (или "COMMIT" и т.н.), когато изрично извикам $dbh->commit; Предполагам, че DB-API на Python работи по-скоро по този начин, тъй като други системи като JDBC го правят също...