In a medium-large pot over medium-high heat, add 1 tablespoon oil, beef, and ¼ teaspoon salt. Break the beef up into chunks and let it cook, undisturbed for about 3 minutes or until beginning to brown, then continue to break into smaller chunks, stir it around, and let it continue to cook until cooked through. Transfer to a paper towel lined plate.
To the pot over medium heat, add the onion and remaining ¼ teaspoon salt. If the pot is dry, add a bit more olive oil (you want a scant tablespoon). Cook for 3-5 minutes, stirring occasionally and scraping up anything stuck to the bottom of the pot. Add the garlic and cook for 30 seconds, stirring often.
Stir the beef back into the pot and reduce the heat to low. Add the soy sauce to a small bowl or liquid measuring cup and whisk in the cornstarch or tapioca flour until combined. Have the water nearby, then pour the soy mixture into the pot and stir immediately for just a few seconds to coat the beef. Immediately add the water, rice, and fish sauce and stir to combine, scraping up anything stuck to the bottom of the pot.
Bright to a boil over high heat, give it a stir, then cover with a lid and reduce the heat to medium-low to maintain a rapid simmer for 10 minutes. Remove the lid and stir in the broccoli. Simmer uncovered for another 3-5 minutes or until the rice is cooked through. Turn off the heat and stir in the vinegar.
Serve topped with fresh herbs, a drizzle of sesame oil (about ½ tsp per serving) and sesame seeds (if using).