För det första finns det inget AutoCommit-läge i PostgreSQL och pg_*-funktionerna i PHP API försöker inte efterlikna en.
pg_querys dokument säger
Så det garanterar att pg_query("UPDATE1 ..; UPDATE2...")
körs i en transaktion och har en allt-eller-inget-effekt på data.
Sekvensen
pg_query("BEGIN");
pg_query("UPDATE1...");
pg_query("UPDATE2..");
pg_query("COMMIT");
motsvarar pg_query("UPDATE1 ..; UPDATE2...")
med hänsyn till dataintegritet (halvfärdigt tillstånd kan inte hända).
När det gäller noteringen "om det inte finns explicit BEGIN/COMMIT...", är den endast relevant om dessa inte finns i början och slutet av hela kedjan av SQL-satser. Det vill säga pg_query("BEGIN; update1; update2; COMMIT;");
motsvarar pg_query("update1; update2;")
men (uppenbarligen) inte likvärdig med pg_query("update1; COMMIT; update2;")