For instance you want to see a perticular row/id is existing in target object, and if it does then udate else insert based on lookup on target.
in this case you going to validate the lookup return value to set the Data Driven operation using 'Data Driven Condition'.
Other property Operation is where you know the data and you set the operation(Insert, Upate,upsert, delete ; This might need PrimaryKey/ID) something like developer driven
When you select UPSERT as on operation, task will first try as UPDATE and if it did not find the match, then it sends the same record as INSERT.
So in this case same record is sent twice to the target, first upd n then ins. And you cant do the DELTE operation with single instance of target
Based on some logic if could derive a flag for each n every reocrd and assume 1 is insert, 2 is update n 3 is delete, the expression could be
with single instance of target we can do 3 operations.