A single transaction for the whole user session? That seems a bad idea. Also I'm not sure you can do transactions during another transaction, and I need them for other purpose, i.e., for what they were designed to do (doing changes in multiple tables that need to stay consistent).
It’s exactly what transactions are for. A nested transaction is called a savepoint, which sqlite does support.