The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/11/plpgsql-transactions.html Description:
This chapter fails to state: (1) If a PL/pgSQL procedure issues "commit" then it must be called with AUTOCOMMIT set to On. This is counter-intuitive. You'd expect the opposite. (2) If a PL/pgSQL procedure has a block statement with an exception section (this might be the procedure's defining block, or an inner block) then that block's executabe section must not issue "commit". Doing so causes a run-time error.