We no longer need to worry about pysqlite implicitly beginning transactions, and can be more explicit about beginning/ending transactions save() now also has a trx argument controlling whether a transaction should be started / left open
hopefully that's the last of it