I know something about DBExress and you can not compare it to SQLdb. SQLdb is much older and more reliable.
SQLite is originally a single database. So the answer Thaddy told is correct.
I know DBExpres doesn't work with transactions, because it closes the connection and thats why there are no transactions.
Thaddy has also right that locking is a database issue and not a framework issue. Fortunally SQLdb has a component called TTransaction that work with it. So an commit(retaining) is not only send the data to a table, but also closes the transaction on a database. That's why (I think) Firebird works very well with SQLdb.
EDIT:
A commit should be done before every TSQLQuery.free, or?
A commit/rollback is always required to make your modifications to the database. It also closes the transaction file. Even when you do a SELECT. But the option readcommitted will do it for you.