«База данных заблокирована» означает, что какое-либо другое соединение имеет активное соединение.
Используйте PRAGMA busy_timeout , чтобы подождать некоторое время для завершения другой транзакции:
conn.execute("PRAGMA busy_timeout = 30000") # 30 s
Однако, если это другое приложение намеренно сохраняет открытую транзакцию, чтобы заблокировать базу данных, вы ничего не можете сделать.