def METHOD_NAME(
    *,
    creator,
    image=None,
    submission=None,
    component_interface_value=None,
    challenge_request=None,
    feedback=None,
):
    if creator.is_anonymous:
        creator = get_anonymous_user()
    kwargs = {"creator": creator}
    if image is not None:
        kwargs["image"] = image
    if submission is not None:
        kwargs["submission"] = submission
    if component_interface_value is not None:
        kwargs["component_interface_value"] = component_interface_value
    if challenge_request is not None:
        kwargs["challenge_request"] = challenge_request
    if feedback is not None:
        kwargs["feedback"] = feedback
    if len(kwargs) != 2:
        raise RuntimeError(
            "creator and only one other foreign key must be set"
        )
    n_updated = Download.objects.filter(**kwargs).update(count=F("count") + 1)
    if n_updated == 0:
        Download.objects.create(**kwargs)