def upsert(self, conflict_target: List, fields: Dict, index_predicate: str=None) -> int:
return self.get_queryset().upsert(conflict_target, fields, index_predicate)<EOL>
Creates a new record or updates the existing one
        with the specified data.

        Arguments:
            conflict_target:
                Fields to pass into the ON CONFLICT clause.

            fields:
                Fields to insert/update.

            index_predicate:
                The index predicate to satisfy an arbiter partial index.

        Returns:
            The primary key of the row that was created/updated.