Innanzitutto, non esiste la modalità AutoCommit in PostgreSQL e le funzioni pg_* dell'API PHP non tentano di emularne una.
doc di pg_query dice
Quindi garantisce che pg_query("UPDATE1 ..; UPDATE2...")
viene eseguito in una transazione e ha un effetto tutto o niente sui dati.
La sequenza
pg_query("BEGIN");
pg_query("UPDATE1...");
pg_query("UPDATE2..");
pg_query("COMMIT");
è equivalente a pg_query("UPDATE1 ..; UPDATE2...")
per quanto riguarda l'integrità dei dati (non può verificarsi lo stato semilavorato).
Per quanto riguarda la nota "a meno che non ci siano BEGIN/COMMIT espliciti...", è rilevante solo se questi non sono all'inizio e alla fine dell'intera catena di istruzioni SQL. Ovvero, pg_query("BEGIN; update1; update2; COMMIT;");
è equivalente a pg_query("update1; update2;")
ma (ovviamente) non equivalente a pg_query("update1; COMMIT; update2;")