Put the peeled onion and celery into a processor and blitz to a mush. Or you can chop as finely as humanly possible by hand. Reserve 2 tablespoons for the meatball mixture.
Warm the garlic flavoured oil in a heavy saucepan or Dutch oven, add the onion and celery mixture, along with the thyme, and cook at moderate to low heat, stirring every now and again, for about 10 minutes.
Add the cans of tomato, filling up each empty can with water to add to the pan. Season with the sugar, salt and pepper, stir and then leave to come to a bubble, and then turn down to let it simmer gently while you get on with the meatballs.
Put all the ingredients for the meatballs, including the reserved chopped onion and celery, and salt according to preference, into a large bowl and mix together, gently, with your hands, wearing disposable vinyl gloves if you feel so inclined. Don't over-mix, as that will make the meatballs dense-textured and heavy.
When all the meatball ingredients are not too officiously amalgamated, start rolling. The easiest way really to do this is to pinch out an amount about the size of a generously heaped teaspoon and roll into a bowl between the palms of your hands. Put the meatballs on a baking tray, lined with baking parchment or greaseproof paper, as you go. You should get about 50 little meatballs.
Drop these gently into the simmering sauce; I try and let these fall in concentric circles working around the pan from the outside edge inwards, in only the vaguest of fashions.
Let the meatballs cook for 30 minutes, until cooked through. Serve with rice or pasta or however you so please.