In a medium sized mixing bowl add bread, grated onion and beaten egg. Mash with a fork until the bread absorbs the moisture, then stir in sun dried tomatoes, basil, parmesan, garlic and salt & pepper.
Add in beef and use your hand to combine until everything is evenly distributed. Try not to mash the beef into oblivion or the meatballs will come out tough and chewy. Use a 1 tbsp measuring spoon to scoop out equal chunks of meat and space out on a chopping board. You should get 10-12 chunks. One by one roll them into meatballs.
In a non-stick pan over medium-high heat add a drizzle of olive oil, then place in the meatballs. Use your tongs to frequently turn the meatballs until lightly charred with a good crust on them (you want a good bit of caramelization to boost flavour and help contain the shape). Be gentle as the meatballs with be soft/delicate. If they begin burning too quickly just turn down the heat slightly. They should just about be cooked in the middle, but they'll continue cooking in the sauce. Remove from pan and leave the fat behind.
Turn heat down to medium and add diced onion to the leftover fat. Fry until the onion begins to soften/turn golden then add in garlic and fry for 1-2mins longer. Add 1 tbsp tomato paste and fry for 2mins, then pour in red wine. Deglaze the pan with your wooden spoon and simmer down the wine until it turns into a thick consistency (3-5mins). This is important to burn off the alcohol.
Pour in tomatoes then add basil, sugar, salt & pepper. Simmer on low for 15-20mins, or until the tomatoes soften/burst and the sauce starts to reduce. Add in meatballs and simmer for 5 more mins so the meat and sauce can exchange flavours. Make sure the meatballs are covered in some of the sauce, then cover in mozzarella, place under the grill & broil until the cheese melts.
Remove pan and sprinkle with fresh basil. Serve straight from the pan with garlic bread!