Just did a quick bit of digging through the code to see what is implemented.
In XmlPatcher, the following functions (and their inputs) are called:
case "set":
return _targetFile.SetByXPath(attribute, _patchElement, _patchName) > 0;
case "setattribute":
return _targetFile.SetAttributeByXPath(attribute, _patchElement, _patchName) > 0;
case "append":
return _targetFile.AppendByXPath(attribute, _patchElement, _patchName) > 0;
case "prepend":
return _targetFile.PrependByXPath(attribute, _patchElement, _patchName) > 0;
case "insertBefore":
return _targetFile.InsertBeforeByXPath(attribute, _patchElement, _patchName) > 0;
case "insertAfter":
return _targetFile.InsertAfterByXPath(attribute, _patchElement, _patchName) > 0;
case "remove":
return _targetFile.RemoveByXPath(attribute, _patchName) > 0;
hope that clears things up!