Os procedimentos armazenados são executados na transação do banco de dados no Postgres?

Se um procedimento armazenado falhar no meio, as alterações nesse ponto, desde o início do SP, são revertidas implicitamente ou precisamos escrever algum código explícito para garantir que o SP seja executado apenas em uma transação de banco de dados?

questionAnswers(1)

yourAnswerToTheQuestion