Don't you just need the insert/update to the target table to rollback on error? In which case you only need to assign those steps to a named transaction.
Is it really essential to also rollback DML on the I$ and E$ tables?
Yes roll back on the target table alone would server the purpose. But the reason for having involved ODI temporary tables to same transaction is because of the dependancy between the table.
There are foreign key relations between my target tables. Hence if the data inserted into my first target table is not committed then that would through error while inserting data into my child table .
To avoid this i have kept transaction one across all the DML commands.