When a field does not exist yet when you update it you must use the field key in update_field() rather than the field name. This is mentioned in the documentation https://www.advancedcustomfields.com/resources/update_field/
The field’s key should be used when saving a new value to a post (when no value exists). This helps ACF create the correct ‘reference’ between the value and the field’s settings.