I hadn't looked at this before, but if I'm understanding right, it looks like some kinds of errors could lead to some statements in a batch being saved and others not (since save is in the loop and has an error branch). If that's the right understanding, that behavior isn't allowed; a batch must be either saved or not, entirely. (7.0, "The LRS MUST reject a batch of statements if any statement within that batch is rejected.")