def METHOD_NAME(
    self,
    prop: Property,
    value: Optional[str],
    cleaned: bool = False,
    fuzzy: bool = False,
    format: Optional[str] = None,
    quiet: bool = False,
    schema: Optional[str] = None,
    dataset: Optional[str] = None,
    seen: Optional[str] = None,
    lang: Optional[str] = None,
    original_value: Optional[str] = None,
) -> None:
    """Add a statement to the entity, possibly the value."""
    if value is None or len(value) == 0:
        return
    # Don't allow setting the reverse properties:
    if prop.stub:
        if quiet:
            return None
        msg = gettext("Stub property (%s): %s")
        raise InvalidData(msg % (self.schema, prop))
    if lang is not None:
        lang = registry.language.clean_text(lang)
    for clean in self.lookup_clean(
        prop, value, cleaned=cleaned, fuzzy=fuzzy, format=format
    ):
        if original_value is None and clean != value:
            original_value = value
        stmt = Statement(
            entity_id=self.id,
            prop=prop.name,
            schema=schema or self.schema.name,
            value=clean,
            dataset=dataset or self.dataset.name,
            lang=lang,
            original_value=original_value,
            first_seen=seen,
        )
        self.add_statement(stmt)