I'm fine with a generic approach here. We went back and forth with a similar idea in datazilla. I think the one downside to be aware of is for some of the tables the list of `keys and `others` can be long and because placeholders are used in the SQL the order is critical. This can be difficult to maintain, the developer will need to read the SQL and be aware of the order of placeholders any time a `get_or_create_generic` is called. The upside is there's less boilerplate code. There will likely be some get or create logic that will need to be unique for specific tables so if we use this kind of approach it will probably have to be mixed with explicitly named methods.