I do not know if there is such a command now, looked and can't see
one (this does not mean there is not one).
But it is possible to write your own myDelete function which does
the resetting and it would look the same as the AppendTo. You just
need to pass the list to the function myDelete by reference to do this,
but it will now work by resetting the list.
Like this
-----------------
ClearAll[myDelete]
myDelete[from_, item_] := Module[{loc},
loc = Position[from, item];
If[Not[loc === {}], from = Delete[from, loc]]
];
------------
Now you can use it like this:
s = {1, 2};
e = 2;
myDelete[Unevaluated@s, e];
s
===> {1}
s = {1, 2, 3, 2};
e = 2;
myDelete[Unevaluated@s, e];
s
===> {1, 3}
s = {1, 2, {3}, 2};
e = {3};
myDelete[Unevaluated@s, e];
s
===>{1, 2, 2}
and so on.
So, you just need to do
1. replace Delete with myDelete
2. add Unevaluated@ to the list
use at your own risk. Not tested very well. Not responsible for
any damage caused by the use of this myDelete function.
--Nasser