If a datastore.delete() succeeds but for some reason deleting the file throws an exception, this could be nDeleted==0 even if we've modified the attachments database.

I think this method needs to be more concerned with error modes.