O comando BEGIN inicia um bloco de transação, ou seja, todos os comandos após o BEGIN são executados em uma única transação, até ser encontrado um COMMIT ou ROLLBACK explícito. Por padrão (sem o BEGIN), o PostgreSQL executa as transações no modo de auto-efetivação (autocommit), ou seja, cada comando é executado em sua própria transação e uma efetivação (commit) é realizada implicitamente no fim do comando, se a execução for bem-sucedida, senão a transação é cancelada (rollback).
Os comandos são executados mais rapidamente em um bloco de transação, 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 dentro de uma transação também é útil para garantir a consistência ao se fazer várias modificações relacionadas: as outras sessões não conseguem ver os estados intermediários até que todas as modificações relacionadas tenham sido sido feitas.
START TRANSACTION possui a mesma funcionalidade do BEGIN.
Utilize COMMIT ou ROLLBACK para terminar um bloco de transação.
Executar o BEGIN dentro de um bloco de transação provoca uma mensagem de advertência. O estado da transação não é afetado.
O comando BEGIN é uma extensão do PostgreSQL à linguagem. Não existe o comando BEGIN explícito no padrão SQL; o início da transação é sempre implícito, terminando por um comando COMMIT ou ROLLBACK.
Outros sistemas de banco de dados relacionais podem oferecem a funcionalidade de auto-efetivação (autocommit) como uma comodidade.
Por coincidência, a palavra chave BEGIN é utilizada com uma finalidade diferente na linguagem SQL incorporada. Deve ser tomado muito cuidado com relação à semântica da transação ao migrar aplicações de banco de dados.