大雑把に言えば

削除ファイルの変更前変更後等々の紐付けを確認する
    ↓
紐付けられたデータから削除ファイルの情報を消して新たに紐付けし直した紐付けデータを作る
    ↓
古い紐付けデータを消す
    ↓
削除ファイルを消す


この作業を並列ではなく1つずつちまちまと実行してる
紐付けられたデータ自体が削除対象に含まれていても上記の処理を一旦実行してる
はっきり言えば効率が悪いとしか言いようがない