Personally, the snippet suggested in the ticket is sufficient for my needs (although I'm saddened by having to duplicate the setattr logic).
However, I filed the ticket after Googling "Django conditional update_or_create" and finding no appropriate solution. You might be right about the use case being niche, however others have ran into this too, with the proposed solutions being less-than-ideal.
(I won't link anything here, but searching stackoverflow for "Django conditional update_or_create" should lead you to the same question/answers I came across).
Perhaps the "solution" here isn't additional code, but rather a section in documentation that suggests a solution? It's extremely unfortunate that this is easy to get wrong in so many ways, but also isn't appropriate to add directly to Django.