It seems to me that there is a race condition here which `get_or_create` handles but this method does not; if a matching object is created by another process in between the time of this initial `get` and the later `save`, it will cause an unhandled `IntegrityError`.

Is there a reason not to simply use `get_or_create` within this method, and inherit its handling of that race condition?