Safe way to remove array elements

Let’s say I have an array of blocks with add/remove functionality. The only way to delete from an array is with the delete method which works by index; Now if a user adds something above the item I want to delete or performs a move operation before my delete transaction reaches the document in the server, the wrong item would get deleted.
Is there a way to handle this safely without introducing a lock mechanism?

Have you had this occur? I’m not sure this actually happens in practice; could you provide a code sample of two Y.Docs triggering this scenario?