Before peeling asparagus, start on the marinade. In a heavy saucepan, cook onions slowly in the olive oil with garlic, zest, herbs, and bay leaf. When tender (about 10 minutes), add peppercorns, wine, lemon juice, water, and salt. Cover and simmer slowly for about 20 minutes.
Peel asparagus. Lay in a flameproof casserole dish and pour marinade over so asparagus is just covered with liquid (more water may be added if needed). Bring to a boil, cover, and simmer slowly for 20 minutes, or until asparagus is tender. Take out asparagus and arrange on serving platter. Boil down the cooking liquid until lightly syrupy and spoon over the asparagus. Sprinkle with parsley.