Merges sourceObj into targetObj, deleting sourceObj. Attributes and links from sourceObj are added to targetObj provided 1) that they are not there already, and 2) that there is room.
WARNING this function bypasses the API. WARNING This function just might leave the data in an illegal state The function performs a number of checks for each individual change. If a check fails, the latest change is undone before the error exit, in an attempt to leave the data in a state that is legal. Note that only the latest change is undone - in case of error the data state will not be brought back to the state from before the execution of the command. Note that sourceObj is likely to be in an illegal state during execution, so that an error may well leave sourceObj in an illegal state. If this happens, deleting sourceObj may bring the data back to a legal state, and is unlikely to cause further problems. In spite of the checks, some objects (not limited to sourceObj and targetObj) may be left in an illegal state, even if no error is raised. It is recommended to use this function with caution, and to run checkAllValid after it has been used.