I'm not asking if colA is always less than colB: your example data already shows that it is not the case. I am asking you to make it so, i.e., to require that on insertion, colA is always less than colB, and to do rectification of the existing rows so that it becomes the case. I am not sure if you can enforce this in standard SQL, but you can certainly implement it in the PHP or other application code that handles the insertion.
Likewise, I'd ask: since these are supposed to be foreign keys, do you really want to allow a duplicate pair of foreign keys, like the repeated colA=1 and colB=15 in your example? If not, this can be enforced with a unique constraint. If you do want to allow it, a SELECT DISTINCT on both columns would eliminate the duplicates anyway.
Doing the duplicate elimination in PHP isn't hard (there's the array_unique function, and you just need to ensure that colA < colB in the PHP representation of the row), but if you can avoid it with little cost, why not?