i am not quite sure what are you doing here you are adding to session object that is already added  and then you are deleting it  by the way i wrote a manual about this cases  and usage of soft delete  model soft delete will produce n queries for each row  and if you use query soft delete it will produce only query  so this solution has terrible performance  and i think it contains bugs 