code: def _delete(
              self, sock_info, criteria, multi,
              write_concern=None, op_id=None, ordered=True,
              collation=None, session=None, retryable_write=False):
          
          common.validate_is_mapping("filter", criteria)
          write_concern = write_concern or self.write_concern
          acknowledged = write_concern.acknowledged
          delete_doc = SON([('q', criteria),
                            ('limit', int(not multi))])
          collation = validate_collation_or_none(collation)
          if collation is not None:
              if sock_info.max_wire_version < 5:
                  raise ConfigurationError(
                      'Must be connected to MongoDB 3.4+ to use collations.')
              elif not acknowledged:
                  raise ConfigurationError(
                      'Collation is unsupported for unacknowledged writes.')
              else:
                  delete_doc['collation'] = collation
          command = SON([('delete', self.name),
                         ('ordered', ordered),
                         ('deletes', [delete_doc])])
          if not write_concern.is_server_default:
              command['writeConcern'] = write_concern.document
  
          if not sock_info.op_msg_enabled and not acknowledged:
              # Legacy OP_DELETE.
              return self._legacy_write(
                  sock_info, 'delete', command, op_id,
                  False, message.delete, self.__full_name, criteria,
                  False, write_concern.document,
                  self.__write_response_codec_options,
                  int(not multi))
          # Delete command.
          result = sock_info.command(
              self.__database.name,
              command,
              write_concern=write_concern,
              codec_options=self.__write_response_codec_options,
              session=session,
              client=self.__database.client,
              retryable_write=retryable_write)
          _check_write_command_response(result)
          return result
docs: Internal delete helper.