Логика удаления по-уму:
1. Начали транзакцию
2. В пул запросов пихнули удаление файла с базы, посмотрели что вернул результат запроса
3. Если п.2 завершился как true - нашли файл и удалили с диска, (вернули результат в переменную)
4. Если п.3 завершился как true - делаем commit(), если нет - rollback или там сами решаем, удалять ли файл только с БД (опять же commit())
Мое имхо.