The AUTONOMOUS_TRANSACTION
pragma marks a routine as autonomous; that is, independent of the main transaction.
In this context, a routine is one of these:
Schema-level (not nested) anonymous PL/SQL block
Standalone, package, or nested subprogram
Method of an ADT
Noncompound trigger