There is currently no method to react on data extension record update.
What you describe in the first paragraph is how you have to set it up. Create the record and send the API call from the same source.
This approach is also what I recommend - but for completeness sake:
This option DOES exist with Salesforce records, as it is possible to create e.g. a Sales Cloud flow on any object that reacts "on record update". That's exactly what a Journey Builder SF Data Entry Source creates behind the scenes.
This is why Sales Cloud is often made part of processes like yours, and e.g. campaign members are created for the sole purpose of reacting to an action "in near-real time" and the rest is handled inside a journey.
While it cannot be denied that this works, I am personally not a fan because it makes the whole workflow involve a third system (Sales Cloud) that actually serves no business purpose - it's just used as a technical workaround, making the entire thing more complicated and a lot harder to debug and maintain.