As the name of the database feature implies, this is a Godzilla-sized hack to work around the bug in `sqlite3` described in an earlier commit.

Generally speaking, starting a transaction is equivalent to disabling autocommit. In Python libraries, disabling autocommit is the way to go because adapters have to track transaction state to implement PEP 249 semantics on databases that default to autocommit. Starting or terminating transaction explicitly (`cursor.execute('START TRANSACTION ...')`, `cursor.execute(`COMMIT`)`) confuses them to no end.

However `sqlite3` has a bug that prevents creating savepoints when autocommit is disabled. Therefore, for `sqlite3`, it's necessary to start a transaction explicitly.This has the effect of disabling autocommit for the duration of the transaction, so we flip the flag manually. It's "safe" because `set_autocommit` raises an error when an atomic block is executing; we simply need to restore the flag on exit.