Have you considered having the params generated automatically? Like, with no need to call it explicitly? The insert and update functions could look at what's passed in, and if no params are provided they could call this function on behalf of the caller. Then all we'd ever pass would be data.