Hi James,
My approach is to use a data detail and its bindings to populate the values in a form for updating.
The steps include setting value for the data detail and then show the modal (via inline flows so that the steps run synchronously). The form fields have a binding to the data detail values, so the fields are populated if it is an existing record, otherwise, the field values remain empty.
Then on the success event of the form, I reset and clear the form data, set data detail value to null and hide the modal.