There's a race condition here, right?  Eg, if I have two POSTs at the same time, then both could create a Collaborator, right?  

I think that [get_or_insert](https://developers.google.com/appengine/docs/python/ndb/modelclass#Model_get_or_insert) does what you want.  If not, you could write models.collaborator.get_or_create() and decorate it with @ndb.transactional to ensure that only one is created.