Preheat your oven to 325°F (160°C). Pat the beef shanks completely dry with paper towels. Season generously on all sides with salt and pepper.
Heat the olive oil in a large Dutch oven or oven-safe pot over medium-high heat. Sear the beef shanks on all sides until deeply browned. This step is crucial for developing flavor. Remove the shanks from the pot and set aside.
Add the chopped onion, carrots, and celery to the same pot. Cook, stirring occasionally, until the vegetables have softened and started to brown, about 8-10 minutes. Add the minced garlic and cook for another minute until fragrant.
Stir in the tomato paste and cook for 1-2 minutes, allowing it to deepen in color.
Pour in the red wine, scraping up any browned bits from the bottom of the pot. Let the wine simmer and reduce by about half, which should take 5-7 minutes.
Return the seared beef shanks to the pot. Add the beef broth, bay leaves, thyme, and rosemary. The liquid should come about two-thirds of the way up the shanks. If not, add a little more broth or water.
Bring the liquid to a simmer on the stovetop. Once simmering, cover the pot tightly with a lid and transfer it to the preheated oven.
Braise for 3 to 4 hours, or until the beef is fork-tender and falling off the bone. Check periodically and add more liquid if necessary to keep the shanks partially submerged.
Once tender, carefully remove the beef shanks from the pot and set them aside on a platter, keeping them warm. Discard the bay leaves.
If you wish to thicken the sauce: In a small bowl, whisk together the optional flour with a few tablespoons of cold water to create a slurry. Bring the braising liquid to a simmer on the stovetop. Gradually whisk in the slurry until the sauce reaches your desired consistency. Season with additional salt and pepper to taste.
Spoon the rich sauce and vegetables over the beef shanks. Garnish with fresh chopped parsley before serving.