def METHOD_NAME(self, record):
    """Check fields uniqueness.
    For each fields, check if this field is present into the record. If it
    is present, the value cannot already taken (for this organisation).
    :param record: the record to check.
    """
    attrs_to_check = [attr for attr, _ in self.fields if attr in record]
    if not attrs_to_check:
        # None attributes to check exists into the record.
        # Nothing to check, just return
        return
    # Create an `OR` query with all fields to check and exclude the current
    # record from the result. If one hit matches, raise a ValidationError,
    # otherwise, all should be fine. Enjoy !
    terms = [
        Q('term', **{es_field: record[attr]})
        for attr, es_field in self.fields
        if attr in record
    ]
    es_query = self.search_class()\
        .query('bool', should=terms, minimum_should_match=1)\
        .exclude('term', pid=record.pid)\
        .source().scan()
    _exhausted = object()
    matching_hit = next(es_query, _exhausted)
    if matching_hit != _exhausted:
        pid = matching_hit.pid
        field_keys = ' and/or '.join(attrs_to_check)
        msg = f'{field_keys} value(s) already taken by pid={pid}'
        raise ValidationError(msg)