Currently queries are cancelable but updates are not. Updates are just of capable of running awry especially since some of them can embed queries within them. In general any update that generates a large amount of data can result in a long running update.
Therefore we should make it possible to cancel updates, my rough proposal for this is as follows:
1 - Provide a cancel() method on UpdateProcessor
2 - Provide a cancel() method on individual update commands so a processor can cancel() whichever is currently running
When updates are cancelled it must be treated as if updates failed and the transaction should be rolled back or marked as uncommittable as appropriate.
I will create a SVN branch to experiment on this feature.