I added a case to the webform and passed the case1 id via the URL.
I made sure the Case Type was "User Select" so CiviCRM does not expect to have case roles added, except for the case client. This was critical. When I selected a case type, the activity kept getting added instead of updated.
I passed the case client CID as a hidden contact on the webform,
I made sure the activity was File on Case 'Case1'
I made sure all the target, source and assignees bits were filled out on the activity.
I passed the activity id in the URL to populate the activity.
I passed CIDs for the target, source and assignee to populate the activity.
This magic sauce prevents an activity being added, when you want to update an existing one.