See #20 for a discussion. The current implementation calls the super, which performs a preliminary check using has_objects, which in turn calls list_objects which will be very expensive for larger repositories. If the interface of the AbstractRepositoryBackend allows it, we should simply call boto3.delete_objects which will delete all files that exist and return an error for keys that didn't exist.