<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_or_update(model, *, defaults=None, save=True, **kwargs):
 """ Create or update a django model instance. :param model: :param defaults: :param kwargs: :return: object, created, updated """

    obj, created = model._default_manager.get_or_create(defaults=defaults, **kwargs)

    updated = False
    if not created:
        if defaults:
            for k, v in defaults.items():
                if getattr(obj, k) != v:
                    setattr(obj, k, v)
                    updated = True

        if updated and save:
            obj.save()

    return obj, created, updated