Andrey Tatarnikov
о как, спасибо, странно что в доках не указано, хотя может я слепой
Цитаты оттуда и из описаний соответствующих команд:
Transaction control is only possible in CALL or DO invocations from the top level or nested CALL or DO invocations without any other intervening command.
If CALL is executed in a transaction block, then the called procedure cannot execute transaction control statements. Transaction control statements are only allowed if CALL is executed in its own transaction.
If DO is executed in a transaction block, then the procedure code cannot execute transaction control statements. Transaction control statements are only allowed if DO is executed in its own transaction.
По-моему, указано и понятно.