1) This is just appropriate application code, that calls the publish command in a loop.
2) For now you would have to handle this sort of summarization at the application level, looking at the events in the stream and applying your rules.
3) There's no problem posting new information in the stream to represent the rollback, it can just be considered like another new value.