How to show/create dynamic insight visual (custom narrative) based on the values available on dataset

As of now there is no way to programmatically add visuals.

There are two options that I can think of.

One you can have one insight that looks for comparisons / criteria and formats the visual based on that.

Another option is to use Conditional Rendering with parameters. If you are doing the embedding option you can look to pass parameters and conditionally render the visuals.