In a pan, heat 1 tablespoon of the olive oil and onion together over medium-high heat until the onion begins to sizzle gently. *Sweat the onion until soft, about 5 minutes.
Add the allspice, cumin, nutmeg, and salt, and bring the heat down to medium. Stir to combine and fry gently for another minute or so until spices are fragrant. Remove from heat and cool for 10 minutes.
In a large mixing bowl, combine the lamb, crumbled tofu, spiced onions, egg, and parsley. Bash the meat against the side of the bowl to really work the ingredients in. The desired texture should be smooth and evenly mixed. Alternatively, you can use a food processor to speed things up.
Lightly oil your hands and begin rolling the meatballs. Take a small amount of the lamb mixture (about 2 tablespoons) and roll between your hands to form a ball. Repeat until all the mixture is used.
Heat the remaining 2 tablespoons of olive oil in a deep saucepan over medium-high heat until shimmering.
Carefully add the meatballs and fry until add sides are browned. Shake the pan occasionally to roll the meatballs and get an even browning. Remove from heat and set aside. NOTE: The meatballs do not have to be fully cooked! They will finish cooking in the shakshuka sauce.