HBASE-3584 does not not provide fully atomic operation in case of region server failures (see explanation there).
What should happen is that either (1) all edits are applied via a single WALEdit, or (2) the WALEdits are applied in async mode and then sync'ed together.
For #1 it is not clear whether it is advisable to manage multiple different operations (Put/Delete) via a single WAL edit. A quick check reveals that WAL replay on region startup would work, but that replication would need to be adapted. The refactoring needed would be non-trivial.
#2 Might actually not work, as another operation could request sync'ing a later edit and hence flush these entries out as well.
The attached patch implements #1 and fixes replication to be able to deal with different operations being grouped in one WALEdit.