Ten eerste is er geen AutoCommit-modus in PostgreSQL en de pg_*-functies van de PHP API proberen er geen te emuleren.
pg_query's doc zegt
Het garandeert dus dat pg_query("UPDATE1 ..; UPDATE2...")
wordt in één transactie uitgevoerd en heeft een alles-of-niets-effect op de gegevens.
De reeks
pg_query("BEGIN");
pg_query("UPDATE1...");
pg_query("UPDATE2..");
pg_query("COMMIT");
is gelijk aan pg_query("UPDATE1 ..; UPDATE2...")
met betrekking tot gegevensintegriteit (half-afgewerkte toestand kan niet gebeuren).
Wat betreft de opmerking "tenzij er expliciete BEGIN/COMMIT..." is, is deze alleen relevant als deze niet aan het begin en einde van de hele keten van SQL-instructies staan. Dat wil zeggen, pg_query("BEGIN; update1; update2; COMMIT;");
is gelijk aan pg_query("update1; update2;")
maar (uiteraard) niet gelijk aan pg_query("update1; COMMIT; update2;")