As far as I know, there is no literal shortcut to go about doing this. And whatever you're doing is the right way to go about doing it.
You can also generalize it and go about it this way, check it out:
def get_or_create(session, model, defaults=None, **kwargs):
instance = session.query(model).filter_by(**kwargs).first()
if instance:
return instance, False
else:
params = dict((k, v) for k, v in kwargs.iteritems() if not isinstance(v, ClauseElement))
params.update(defaults or {})
instance = model(**params)
session.add(instance)
return instance, True
Hope this helped!