Bring a big pot of salted water to a boil for the spaghetti. Heat 3 tablespoons oil in an ovenproof skillet over medium heat. Add the onion, garlic, and parsley and cook until the vegetables are soft but still translucent, about 10 minutes. Take the pan off the heat and let cool.
Pour enough milk over the bread in a bowl to moisten and let it soak while the onions are cooling. Combine the meats in a large bowl. Add the egg and Parmigiano and season generously with salt and pepper. Use your hands to squeeze the excess milk out of the bread and add that to the bowl along with the cooled onion mixture. (Hang onto the pan - you'll need it to cook the meatballs.) Gently combine all the ingredients with your hands or with a spoon until just mixed together. Don't overwork or the meatballs will be tough. Divide into 10 equal pieces and shape them into 10 nice looking meatballs.
Preheat the oven to 350 degrees F.
Heat a 3-count of oil in the frying pan over medium heat and brown the meatballs on all sides, about 10 minutes. Put them into a baking dish and spoon about half of the tomato sauce over. Shower with the mozzarella and drizzle with olive oil. Put the meatballs in the oven and bake until the meatballs are cooked through, about 15 minutes.
Meanwhile, cook the spaghetti in the boiling water until al dente, about 8 minutes. Drain and put it onto a large serving platter. Pour on the rest of the sauce and mix well. Spoon the meatballs on top of the spaghetti and garnish with basil leaves. Serve immediately along with extra cheese.
Heat the olive oil in a large saucepan over medium-low heat. Add the onion and garlic and cook until the vegetables are soft, 4 to 5 minutes. Carefully add the tomatoes (nothing splashes like tomatoes) and about 1/2 cup of the reserved liquid and season with salt and pepper. Cook until the sauce is thick, about 15 minutes. Taste and adjust seasoning with salt and pepper. Bring to a boil, stirring for a few minutes with a wooden spoon to further break up the tomatoes. Reduce the heat and let simmer for 20 to 25 minutes. Stir in the fresh basil and season again.