Se ocorrer um erro, o PostgreSQL não reverte a transação. Ele falha em todas as instruções subsequentes com um erro. Você pode tentar isso no cliente.
Você precisa executar o rollback antes que qualquer instrução possa ser executada com sucesso.
No caso de você fechar a conexão e iniciar uma nova, isso é de pouca importância. No entanto, se você mantiver a conexão e executar outras instruções que espera executar com êxito, isso não funcionará.