You cannot possibly use these outside a transaction because in order for them to be "activated" you must be inside a transaction.
You will note that in the absence of "explicit" transaction control, then each "statement" executes within its own transaction context on the connection.
In the case of multiple overlapping transaction contexts on the same connection, and in the absence of "explicit" transaction control, the "transaction context" begins when the first of multiple overlapping statements commences execution and completes when the last overlapping statement is reset.
Note also that in the face of "explicit transaction control" **and** multiple overlapping statement executions on the same connection that although the transaction may be commenced "explicitly", the "explicit" request to "end" the transaction (COMMIT/ROLLBACK) has incomplete effect until the last statement concurrently executing on that connection is also reset (that is, the COMMIT/ROLLBACK of the changed data will occur immediately, however, the "read" transaction context will remain in effect until all outstanding statements on that connection are reset).
Perhaps the documentation with respect to explicit transaction control will be helpful:
<https://sqlite.org/lang_transaction.html>