Por padrão, o PostgreSQL executa as transações em modo não encadeado (também conhecido por "autocommit" [auto-efetivação] em outros sistemas de banco de dados). Em outras palavras, cada comando é executado em sua própria transação e uma efetivação é implicitamente realizada ao final do comando (se a execução terminar com sucesso, senão um "rollback" é realizado). O comando BEGIN inicia uma transação no modo encadeado, ou seja, todas as declarações após o comando BEGIN são executadas como sendo uma única transação, até que seja encontrado um comando explícito COMMIT ou ROLLBACK, ou a execução ser abortada. Os comandos são executados mais rápido no modo encadeado, porque cada início/efetivação de transação requer uma atividade significativa de CPU e de disco. A execução de vários comandos em uma única transação também é requerida por motivo de consistência, quando várias tabelas relacionadas são modificadas.
O nível de isolamento padrão da transação no PostgreSQL é READ COMMITTED, onde os comandos dentro de uma transação enxergam apenas as mudanças efetivadas antes da execução do comando. Por esse motivo deve-se utilizar SET TRANSACTION ISOLATION LEVEL SERIALIZABLE logo após o comando BEGIN se for necessário um nível de isolamento mais rigoroso para a transação. No modo SERIALIZABLE os comandos enxergam apenas as modificações efetivadas antes do início de toda a transação (na verdade, antes da execução do primeiro comando DML em uma transação serializável).
Se a transação for efetivada, o PostgreSQL garante que todas as atualizações são realizadas ou, então, que nenhuma delas é realizada. As transações possuem a propriedade ACID (atomicidade, consistência, isolamento e durabilidade) padrão.
O comando BEGIN é uma extensão do PostgreSQL à linguagem.. Não existe o comando BEGIN explícito no SQL92; o início de uma transação é sempre implícito, e termina pelo comando COMMIT ou pelo comando ROLLBACK.
Note: Muitos sistemas de banco de dados relacionais oferecem a funcionalidade de auto-efetivação (autocommit) por conveniência.
Lembre-se que a palavra chave BEGIN é utilizada para uma finalidade diferente no SQL embutido. Deve-se ter muito cuidado com relação à semântica da transação ao se portar aplicativos de banco de dados.
O SQL92 requer que SERIALIZABLE seja o nível de isolamento padrão das transações.