I experienced the same problems as Tionov with SQLite, the situation here is even worse: On a second PC I could not even Select the data from my database, the query resulted in a timeout.
Do not use it. SQLite locks the whole table on a started transaction (same as Mysql did in early days). If one writes "BEGIN;" before reading, the table is locked. SQLdb does that and you can't prevent it from doing this.
In common database development, the use of "BEGIN;", "COMMIT;" or "ROLLBACK;" is in the hand of the person, which writes the code for a database-centric application. Not so here. Firebird seems to have support for nested transactions*. So SQLdb's behavior may work here.
*But nested transactions are usually bad.