In addition to subtransaction method, PL/Python module provides new autonomous method
which can be used in WITH clause to start an autonomous transaction:
create or replace function pythonomous() returns void as $$
plpy.execute("insert into atx_test values ('asd', 123)")
try:
with plpy.autonomous():
plpy.execute("insert into atx_test values ('bsd', 456)")
except plpy.SPIError, e:
print("error: %s" % e.args)
plpy.execute("insert into atx_test values ('csd', 'csd')")
$$ language plpythonu;
Exception handling for autonomous transaction in PL/Python is done in the same way as for subtransactions.