def METHOD_NAME(self, row: dict):
    if not isinstance(row, dict):
        self._throw("The input row must be a dict object")
    row_size = 0
    for field in self._schema.fields:
        if field.name not in row:
            self._throw(f"The field '{field.name}' is missed in the row")
        if field.is_parimary and field.auto_id:
            self._throw(f"The primary key field '{field.name}' is auto-id, no need to provide")
        dtype = DataType(field.dtype)
        validator = TYPE_VALIDATOR[dtype.name]
        if dtype in {DataType.BINARY_VECTOR, DataType.FLOAT_VECTOR}:
            dim = field.params["dim"]
            if not validator(row[field.name], dim):
                self._throw(f"Illegal vector data for vector field '{dtype.name}'")
            vec_size = (
                len(row[field.name]) * 4
                if dtype == DataType.FLOAT_VECTOR
                else len(row[field.name]) / 8
            )
            row_size = row_size + vec_size
        elif dtype == DataType.VARCHAR:
            max_len = field.params["max_length"]
            if not validator(row[field.name], max_len):
                self._throw(f"Illegal varchar value for field '{dtype.name}'")
            row_size = row_size + len(row[field.name])
        else:
            if not validator(row[field.name]):
                self._throw(f"Illegal scalar value for field '{dtype.name}'")
            row_size = row_size + TYPE_SIZE[dtype.name]
    self._buffer_size = self._buffer_size + row_size
    self._buffer_row_count = self._buffer_row_count + 1