I always do the try catch block as a matter of fact for every edit operation, I usually call abort operation in the catch block regardless of the error. This way in the case of any unforeseen error, I stop the operation without messing up the call stack. Any foreseen error, you are better off handling before it raises an error. I never use abort operation in event listeners raised inside the operation, for that I just throw my own exception and the esri framework aborts the operation and pops up a message.