inside the json setter it would fail to update all track events because there was no media.

Now that the track event is added, then we add the json, the initial update inside the json works so we no longer need another one.

Flow used to look like this:

1. set json.
2. json adds track events.
3. tries to update, but not media, so returns.
4. adds media.
5. does another update attempt.

As you can see, not optimal.