When autocommit is on, a positioned update or delete statement will automatically cause the transaction to commit.
If the result set has holdability ResultSet.CLOSE_CURSORS_AT_COMMIT, combined with autocommit on, Derby gives an exception on positioned updates and deletes because the cursor is closed immediately before the positioned statement is commenced, as mandated by JDBC. In contrast, no such implicit commit is done when using result set updates methods.