SQLAlchemy integration

This isn't really an upsert, since it doesn't do any updating; the behavior is basically what in MBS we usually put in `find_or_insert` methods, except it throws away the result. Not sure what a better name would be, but I think it's not upsert.