Если вы хотите реализовать тайм-ауты, которые работают независимо от того, как клиентская библиотека подключается к серверу, лучше всего попытаться выполнить операции с БД в отдельном потоке, или, что лучше, в отдельном процессе, который «отслеживает» поток / процесс может убить при необходимости; см. модуль многопроцессорной обработки в стандартной библиотеке Python 2.6 (есть версия с бэкпортом для 2.5, если вам это нужно). Процесс лучше, потому что когда он убит, операционная система позаботится об освобождении и очистке ресурсов, в то время как уничтожение потока всегда является довольно небезопасным и грязным делом.