Putin has a point. While it’s pretty clear that a neurological poison hit civilian populations, who is responsible is quite a bit less clear. Rebels pulling a false flag is possible, a stray artillery shell accidentally hitting a storage depot is possible, a Syrian army commander going off script is possible. There are also plenty of industrial chemicals that are neurotoxins that could produce symptoms superficially similar to nerve agents.
Assad could have ordered it, but it seems unlikely to me.