i think the caller should handle delete  or have an arg delete on fail to control the behavior  i thinking making this class very   dumb   to only do one thing per api would make it easier for it to become a generic library 