• I might suggest modifying your intial approach...

    Create a staging table per the design you need. Add a SQL task to truncate the staging table in early in your process.

    Using your Lookup, direct non-matching output to insert into your destination table, but direct matching output to insert into the staging table (as opposed to row by row update - OLE DB Command).

    Then use a SQL task to run a set-based update joining your staging table to your destination table using the predication required.

    An alternative is to add an additional column - isUpdate - to said Staging table and direct ALL output from your Lookup to the Staging table - flagging the matching output in the isUpdate column. Then create a dataflow that inserts the non-isUpdate values and a SQL task to run a set-based update on the isUpdate values.