That command probably goes in a "location" block that matches the set of HTML pages that use main.css.
Normally, the browser parses HTML, finds a <link> tag that mentions main.css, and then requests main.css. With HTTP/2 push, by the time the browser has finished parsing the <link> tag, main.css has already been delivered.
If the browser already has main.css in its cache, it can reject the push.
Normally, the browser parses HTML, finds a <link> tag that mentions main.css, and then requests main.css. With HTTP/2 push, by the time the browser has finished parsing the <link> tag, main.css has already been delivered.
If the browser already has main.css in its cache, it can reject the push.