If using a piece of beef, cut the meat open, tenderize it with the help of a meat mallet, season with salt and pepper and rub half of the minced garlic.
Sprinkle the cheese all over the beef.
Add breadcrumbs, if using and spread it out.
Spread evenly chopped eggs, parma ham, topped with chopped parsley and black olives and season with black pepper.
Drizzle about 2 tbsp of olive oil over the egg mixture.
Roll, tightly the meat up like a jelly roll with the grain of the meat.
Secure with butcher’s twine all over the roll, it is important to secure it very well.
Bring a heavy bottom large pan with lid over medium-high heat. Once hot, add a drizzle of olive oil and add the braciole. Sear it well on all sides, about 2 to 3 minutes each side. Avoid turning the meat too much.
Remove the meat with kitchen tongues and reserve.
Add another drizzle of olive oil and add the chopped onions, cook for 2 minutes, stirring frequently, then add the other half of minced garlic and cook until fragrant.
Add the wine, if using, to deglaze the pan until the alcohol is reduced, about 2 minutes.
Pour the chopped tomatoes and return the roll to the pan.
Place the lid on and simmer over very low heat until steak is cooked through and sauce has slightly reduced, about 1 to 1 1/2 hours. If needed, add some water in the process to avoid sticking to the bottom of the pan.
Check every 15 minutes after the first half an hour. It’s ready when the tip of a knife goes in very easily and the meat is tender.
Remove from the heat and let it rest, uncovered, for 10 to 15 minutes before removing the strings and slicing.