Preheat oven to 350 degrees.
Season ribs generously with salt. In a large dutch oven that will accommodate all of the ribs, heat 2 Tbsp olive oil. Brown ribs on all sides, about 2-3 minutes per side. Remove ribs to a plate.
Meanwhile, place onions, carrots and celery pieces in a food processor and pulse until they are very finely chopped (almost a paste).
Make sure there is at least 1 Tbsp oil left in dutch oven after the meat is removed (if not add some). Over medium heat, add the pureed vegetables. Season with salt and a pinch of pepper. Cook until they start to brown, about 5 minutes, stirring occasionally so they do not burn. Add the garlic, the bay leaves, thyme and rosemary (if using), and cook until fragrant, about 1 minute. Add tomato paste and cook, stirring occasionally, until tomato paste is fragrant and starts to darken, about 4 minutes. Add the wine, scraping bottom of pan to deglaze, and simmer on low until the wine reduces to about half. Add the beef ribs back in, meat side down, and add beef broth just to the top of the ribs. Bring to a boil, turn off burner, and move them to the oven to finish cooking.
After 1 hour, turn ribs over in pot and check to be sure liquid is still at least 3/4 way up the ribs. If not, add beef broth. After 1 more hour, turn ribs again back to bone side up, and check to see if need a bit more beef broth if its getting too dry, again about 3/4 way up the meat. (you may not need to add any more liquid , depending on how well you pot seals). Cook a total of 2 1/2 to 3 hours. Ribs are done when very tender when pierced with a fork but not completely falling apart.
Remove ribs to a plate. Remove bay leaves and herb bundles from braising liquid. Stir sauce and taste for salt and pepper. Serve ribs topped with sauce.
Enjoy!