For the meatballs: Put the bread in a small bowl and add just enough milk to cover. Let soak for 5 minutes.
Add the cheese, parsley, 1/2 teaspoon salt, 1/4 teaspoon pepper, egg and soaked bread to a large bowl and mix lightly with your hands. Add the meat and gently mix; do not overwork. Form the mixture into balls and place on a baking sheet.
Heat a large skillet over medium heat and add a healthy drizzle of olive oil. Working in batches, fry the meatballs in the skillet until all sides are golden brown, 2 to 3 minutes per side. Set aside.
For the marinara sauce: Heat the olive oil in a large saucepan over medium heat. Add the Italian seasoning and onions and sweat the onions until translucent, 5 to 10 minutes. Add the garlic and cook for 30 seconds, then add the wine to the pan to degalze. Then add the tomatoes and meatballs, bring to a simmer and simmer for 20 to 30 minutes.
Bring a pot of salted water to a boil. Cook the bucatini according to the package directions, reserving 1 cup pasta water before draining.
If your sauce gets too thick, add some of the starchy pasta water to thin it out. Remove the sauce from the heat, season with salt and pepper and garnish with fresh basil. Finish with grated cheese over the top and serve.