The width of your boxes is 33.333%. That means that the three of them will just fill the container. Adding 10px margin to one or more of them blows things apart, making the combined width too wide for the container. The left/right borders also add to the overall width.
No you shouldn’t really alter the bootstrap grid as that has knock on effects. All you need to do is to add an inner div and style that as you want and leave the grid alone and let it do its work. (You may need to add negative margins on the inner div to overcome the grids 30px gutter-width settings.)
In most cases you just add your elements inside the grig and apply your styling and margins to that inner element instead and leave the grid alone.
If you are using a framework - then use it
If you do need to adjust the actual grid then add a custom class to it so that you can use that instead of the main bootstrap classes. However you must be careful because if for instance you adjusted the default gutter on that grid (15px padding left and right) then you would upset the row structure which has negative margins equal to that padding.
You can customise the version of bootstrap you download if your requirements are different to the standard and create your own guuter-width defaults. However if you are going to all that trouble then it begs the question of why using a framework to start with if you are not going to make use of its defaults which have all been carefully worked out.