У меня похожая функциональность в некоторых моих приложениях.
Что я делаю, это сначала удаляю файл через точку доступа, а затем удаляю запись базы данных, которая имеет ссылку / указатель на файл. Когда пользователи запрашивают документ (что означает, что ссылка на файл все еще существует в базе данных), приложение сначала проверяет файл, и если по какой-то причине его там нет, как он и ожидал, он очищает запись базы данных в этот момент и изящно уведомляет пользователя об «ошибке».
В любом случае «осиротевшие» документы встречаются редко, но использование этого метода гарантирует, что база данных постоянно очищается как обычная часть запуска приложения.
Есть много других способов справиться с этим, но этот работает для меня.