I debated this and decided to write it for the rare case where commitTask gets called twice. I think that's ok, since the other case where someone might update, commit, update, commit shouldn't be feasible since the second update couldn't happen on a closed connection. I'm open for changing this to throw though if there's a good rationale for it.