Without the parent decrement at cnt[parent[lca(u, v)]] -= , counts leak to nodes above the LCA and give wrong answers. The standard -point marking (cnt[u] += , cnt[v] += , cnt[lca] -= ) works for counting paths that include the LCA itself. But if you want each edge or node on the path counted once, you need the -point version.
The parent decrement cancels the extra count that would otherwise propagate upward past the LCA during DFS summation. This is a subtle detail that many implementations miss.