Cook cannelloni in a large saucepan with lightly salted water as instructed on the package. Drain and rinse with cold water to stop the cooking process. Set aside.
Meanwhile steam or boil broccoli for about 10 minutes until it soft. Drain, let cool for a few minutes and process in a blender or food processor until smooth.
To make the filling combine bread crumbs, milk, olive oil, ricotta, broccoli puree, nutmeg and Parmesan in a large bowl. Mix well and season with salt and pepper to taste.
Preheat oven to 190 C / Gas 4. Lightly oil a baking dish.
For the tomato sauce heat olive oil in a medium saucepan and saute onion and garlic over medium heat until translucent, 5 to 5 minutes. Add tomatoes with their juice, tomato puree, olives and thyme. Stir well and season with salt and pepper. Bring to the boil, take of the heat and pour into the dish. (If you have time, simmer the sauce for a while. It will enhance its flavours.)
Spoon the broccoli mixture into a piping bag and fill the cannelloni rolls. (If you don't have a piping bag, you can also use a spoon or even your hands). Place cannelloni in a single layer on top of the tomato sauce in the dish.
Brush the cannelloni with olive oil and sprinkle with Parmesan. Bake golden brown and heated through, 25 to 30 minutes. To serve, place cannelloni onto a serving platter, spoon tomato sauce on top and sprinkle with pistachios.