Grate onion or purée in a food processor. Put onions into a fine sieve and press onions with the back of a wooden spoon to strain the onion juice into a large nonreactive dish. Discard solids and set juice aside.
Toast saffron in a small skillet over high heat for 1 minute. Crumble toasted saffron into onion juice in dish and stir until juice turns golden. Put lamb into dish and turn to coat well. Cover tightly with plastic wrap and marinate in the refrigerator at least 8 hours, turning and basting several times.
Preheat oven to 350°. Roll up and firmly tie lamb with kitchen twine and put on a rack in a roasting pan. Roast for 30–45 minutes, or until the internal temperature on a meat thermometer reaches 120° for rare or 130° for medium-rare. Remove from the oven and allow the lamb to rest 15 minutes.
Sprinkle lamb with sumac, then slice, discarding twine. Serve garnished with chopped fresh mint, cilantro, and scallions, if you like.